#定义变量
BIN=process
CC=gcc
SRC=$(wildcard *.c)
OBJ=$(SRC:.c=.o)
LFLAGS=-o
CFLAGS=-c
RM=rm -f

$(BIN):$(OBJ)
	@$(CC) $(LFLAGS) $@ $^
	@echo "连接 $^ to $@"
#$(OBJ):$(SRC)
#	$(CC) $(CFLAGS) $(SRC)
%.o:%.c
	@$(CC) $(CFLAGS) $<
	@echo "编译 $< to $@ "
.PHONY:clean
clean:
	@$(RM) $(BIN) $(OBJ) 
	@echo "清理完成"

.PHONY:print
print:
	@echo $(SRC)
	@echo -----------------------------------
	@echo $(OBJ)

#$(BIN):$(OBJ)
##	$(CC) $(FLAGS) $(BIN) $(SRC)
##	$(CC) $(FLAGS) $@ $^
#	$(CC) $^ $(LFLAGS) $@
#$(OBJ):$(SRC)
#	$(CC) $(CFLAGS) $^
#.PHONY:clean
#clean:
#	$(RM) $(BIN) $(OBJ)
#

#更常用的方法，将源文件定义为 .o 文件，然后再连接
#code:code.o
#	gcc code.o -o code
#code.o:code.c
#	gcc -c code.c -o code.o
#
#.PHONY:clean
#clean:
#	rm -f code code.o

#code:code.o
#	gcc code.o -o code
#code.o:code.s
#	gcc -c code.s -o code.o
#code.s:code.i
#	gcc -S code.i -o code.s
#code.i:code.c
#	gcc -E code.c -o code.i
#
#.PHONY:clean
#clean:
#	rm -f code code.i code.s code.o

